100 REMark        UNZIP_BAS
110 REMark        ~~~~~~~~~
120 REMark   This program is used to run unzip in a simple extract mode
130 :
140 CLS#0
150 PRINT#0,"Please answer following questions"\"(or press ENTER to accept [default])"\\
160 INPUT#0,"Which device holds the ZIP'ed file [" & DATAD$ & "]:";arcdev$
170 IF arcdev$ ="":arcdev$ = DATAD$
180 progdev$=arcdev$
190 arcname1$ = "QHelp_zip"
200 arcname2$ = "QHelp_files_zip"
210 INPUT #0,'Where should the unzipped files placed [win1_BASIC_]:';sd$
215 PRINT #0,'REMEMBER TO CONFIGURE Q-HELP_OBJ IF YOU DO NOT ACCEPT THE DEFAULTS'
220 IF sd$=''
221   sd$='win1_'
222   subext$='BASIC'
223 ELSE
225   subext$=GETSUBDIR$(sd$)
226   IF subext$='':subext$='BASIC'
227   IF subext$(LEN(subext$))='_':subext$=subext$(1 TO LEN(subext$)-1)
228 END IF
250 MAKE_DIR sd$&subext$
255 MAKE_DIR sd$&subext$&'_HELP'
260 datadev$ = sd$&subext$&'_'
270 EW progdev$ & "unzip";arcdev$ & arcname1$ & '* -d' & datadev$
280 datadev$ = sd$&subext$&'_HELP_'
290 EW progdev$ & "unzip";arcdev$ & arcname2$ & '* -d' & datadev$
295 :
300 DEFine FuNction GETSUBDIR$(s$)
310 IF s$(LEN(s$))<>'_':s$=s$&'_'
320 IF LEN(s$)=5:IF s$(4) INSTR '1234567890':RETurn ''
322 REPeat t_loop
325   root=1
330   FOR x=1 TO LEN(s$)
340     IF s$(x)='_'
350       IF x=3:IF s$(2) INSTR '1234567890':root=3
360       IF x=5:IF s$(4) INSTR '1234567890':root=5
370       IF x>5:IF root=1:s$='win1_'&s$:NEXT t_loop
380       IF x=8:IF root=3:root=8
390     END IF
400   NEXT x
410   IF root=1:s$='win1_'&s$:NEXT t_loop
415   as$=s$
420   IF root=3:s$=s$(1 TO 3)&'win1_'
425   IF root=3:IF LEN(as$)>3:s$=s$&as$(4 TO):NEXT t_loop:ELSE EXIT t_loop
430   END FOR x
435   EXIT t_loop
440 END REPeat t_loop
445 as$=s$:s$=s$(1 TO root)
450 IF x>root:RETurn as$(root+1 TO)
460 RETurn ''
470 END DEFine
